package br.ucb.cesbdao.modeloTabelas;

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import org.apache.log4j.Logger;

import br.ucb.cesbdao.beans.Atendimento;
import br.ucb.cesbdao.model.PessoaModel;
import br.ucb.cesbdao.model.impl.PessoaModelImpl;
import br.ucb.cesbdao.servicos.Servicos;

@SuppressWarnings("serial")
public class ModeloTabelaAtendimento extends AbstractTableModel{

	private List<Atendimento> atendimentos  = null;
    private String []colunas = new String[] {"Atendido", "Horário Chegada", "Horário Entrada", "Horário Saida","Prefencial"};
    static Logger logger= Servicos.carregaLog(ModeloTabelaAtendimento.class);

    public ModeloTabelaAtendimento(){
        this.atendimentos = new ArrayList<Atendimento>();
    }

    public List<Atendimento> getAtendimento() {
        return atendimentos;
    }

    @SuppressWarnings({ "unchecked", "rawtypes" })
	public void setAtendimento(ArrayList<Atendimento> atendimentos) {
        this.atendimentos = (List)atendimentos;
    }

    public String[] getColunas(){
        return colunas;
    }

    public void setColunas(String[] colunas) {
        this.colunas = colunas;
    }

    @Override
    public String getColumnName(int col){
        return colunas[col];
    }

    public int getColumnCount() {
        return getColunas().length;
    }

    public int getRowCount() {
        return getAtendimento().size();
    }
    public Atendimento getAtendimentoAt(int row){
    	return atendimentos.get(row);
    } 
    public Object getValueAt(int rowIndex, int columnIndex) {
            Atendimento atendimento = (Atendimento)atendimentos.get(rowIndex); 
            PessoaModel model = new PessoaModelImpl();
            switch(columnIndex){
                case 0:
                	return model.consultaPessoaById(atendimento.getChavePessoa()).getNome();
                case 1:
                	if(atendimento.getHorarioChegada() == null)
                		return "";
                	else
                		return atendimento.getHorarioChegada();
                case 2:
                	if(atendimento.getHorarioEntrada() == null)
                		return "";
                	else
                		return atendimento.getHorarioEntrada();
                case 3:
                	if(atendimento.getHorarioSaida() == null)
                		return "";
                	else
                		return atendimento.getHorarioSaida();
                case 4:
                	switch (atendimento.getPrefencial()) {
					case 0:
						return "Normal";
					case 1:
						return "Preferencial";
					case 2:
						return "Emergencial";
					case 3:
						return "Especifico";
                	}
                    
                    
            }
            return null;
    }
}
